빈 문자열
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
빈 문자열은 형식 언어 이론에서 길이가 0이고 어떤 기호도 포함하지 않는 문자열을 의미하며, 프로그래밍 언어에서는 다양한 방식으로 표현된다. 형식 언어에서 빈 문자열은 λ, Λ 또는 ε로 표기되며, 공집합 언어와는 구분된다. 프로그래밍 언어에서 빈 문자열은 널 참조와는 다르게 유효한 문자열로 취급되며, 문자열 비교 함수를 통해 동일한 것으로 인식된다. 빈 문자열은 기수법에서 0을 표현하거나 텍스트 파일의 빈 줄을 나타내는 데 사용될 수 있으며, 널 종료 문자열로 해석될 수도 있다.
더 읽어볼만한 페이지
- 문자열 - 문자열 연결
문자열 연결은 프로그래밍 언어에서 문자열을 결합하는 연산으로, `+` 연산자나 별도의 연산자를 사용하며, 런타임 또는 컴파일 시점에 수행될 수 있고, 형식 언어 이론으로 확장되어 음성 합성 등 다양한 분야에서 활용된다. - 문자열 - 문자열 검색 알고리즘
문자열 검색 알고리즘은 텍스트에서 특정 문자열(패턴)을 찾는 알고리즘으로, KMP, 보이어-무어 등의 효율적인 알고리즘을 거쳐 다양한 방식으로 발전해 왔으며, 웹 검색 엔진, 생물 정보학 등 여러 분야에 응용되고 한국어 검색에서는 특별한 고려 사항이 필요하다. - 형식 언어 - 문자열
문자열은 사람이 읽을 수 있는 텍스트를 저장하고 정보를 전달하거나 받는 데 사용되는 순서가 있는 문자들의 시퀀스로, 다양한 형태의 데이터를 표현하며 유한한 길이를 가지고, 프로그래밍 언어에서 기본 또는 복합 자료형으로 제공되고, 문자 집합과 인코딩 방식에 따라 표현 방식이 달라진다. - 형식 언어 - 튜링 기계
튜링 기계는 앨런 튜링이 제시한 계산 모델로, 테이프 위에서 기계적으로 작동하며, 유한한 상태, 테이프, 헤드, 명령 표를 통해 작동하고, 계산 가능성과 알고리즘의 한계를 연구하는 데 사용된다.
| 빈 문자열 |
|---|
2. 형식 언어 이론에서의 빈 문자열
형식 언어에서 빈 문자열은 λ로 표기된다. (λ의 대문자인 Λ 또는 ε를 사용하는 경우도 있다). 빈 문자열은 길이가 0이며, 어떤 심볼도 포함하지 않고, 반드시 하나만 존재한다.
빈 문자열을 '''공집합 언어'''∅와 혼동하지 않도록 주의해야 한다. 공집합 언어는, 형식 언어(문자열의 집합)에서, 빈 문자열조차 포함하지 않는 공집합을 의미한다.
빈 문자열의 성질은 다음과 같다.
- : 빈 문자열의 길이는 0이다.
- : 어떤 문자열에 빈 문자열을 연결해도, 원래의 문자열과 같다. 빈 문자열은, 문자열 연결에서의 항등원이다 (어떤 문자 집합 Σ에서 자유 모노이드를 구성한다).
- : 빈 문자열은 반전해도 빈 문자열 그대로이다.
- 사전식 순서에서는, 빈 문자열은 어떤 문자열보다 앞에 위치한다. 이는 빈 문자열이 가장 짧은 문자열이기 때문이다.[7]
3. 프로그래밍 언어에서의 빈 문자열
대부분의 프로그래밍 언어에서 문자열은 자료형으로 취급되며, 일반적으로 별개의 메모리 주소에 저장된다. 따라서 빈 문자열("")도 메모리에 저장될 수 있으며, 이는 널 포인터와는 다르다. 널 포인터는 아무 문자열도 가리키지 않는 상태를 의미한다.[3]
길이가 0인 문자열(빈 문자열)도 저장 형식에 따라 메모리가 필요할 수 있다. 형식 이론상으로는 빈 문자열이 하나뿐이지만, 실제 프로그래밍 환경에서는 메모리에 여러 개의 빈 문자열이 존재할 수 있다. 그러나 문자열 비교 함수는 이러한 빈 문자열들을 모두 같다고 판단한다.
빈 문자열은 유효한 문자열이며, 대부분의 문자열 연산에 사용될 수 있다. 일부 언어에서는 빈 문자열, 널 포인터, 정수 0, 부동 소수점 0, 부울 값 false, ASCII의 NUL 등을 유사하게 처리하기도 한다.
일반적으로 빈 문자열은 다른 문자열과 유사하게 표현된다. 널 종료 문자열을 사용하는 경우, 빈 문자열은 단일 널 문자로 표현된다.
오라클 데이터베이스에서는 빈 문자열과 널(SQL)을 구분하지 않는다.
3. 1. 다양한 프로그래밍 언어에서의 빈 문자열 표현
''''''str()string.EmptyString.make 0 -{}character(0)""sstr()%{}%()String::new()[3]System.String.Emptystring 및 VB.NET의 String은 System.String에 대한 별칭)